home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xpaint-2.1.1 / palette.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  2KB  |  76 lines

  1. /* +-------------------------------------------------------------------+ */
  2. /* | Copyright 1992, David Koblas.                                     | */
  3. /* |   Permission to use, copy, modify, and distribute this software   | */
  4. /* |   and its documentation for any purpose and without fee is hereby | */
  5. /* |   granted, provided that the above copyright notice appear in all | */
  6. /* |   copies and that both that copyright notice and this permission  | */
  7. /* |   notice appear in supporting documentation.  This software is    | */
  8. /* |   provided "as is" without express or implied warranty.           | */
  9. /* +-------------------------------------------------------------------+ */
  10.  
  11. #ifndef __palette_h__
  12. #define __palette_h__
  13.  
  14. typedef struct paletteUserList_s {
  15.     Widget                widget;
  16.     struct paletteUserList_s    *next;
  17. } paletteUserList;
  18.  
  19. typedef struct {
  20.     int        isGrey;
  21.     int        isDefault;
  22.     int        isMapped;
  23.     int        ncolors;
  24.     /*
  25.     **
  26.     */
  27.     int        readonly;
  28.     Display        *display;
  29.     Colormap    cmap;
  30.     Visual        *visual;
  31.     int        depth;
  32.     void        *htable, *ltable;
  33.     void        *ctable;
  34.     Pixel        mine;
  35.     /*
  36.     **  TrueColor visual support
  37.     */
  38.     int        rShift, gShift, bShift;
  39.     int        rRange, gRange, bRange;
  40.     /*
  41.     **  Free color entries
  42.     */
  43.     int        nfree;
  44.     void        *list;
  45.     /*
  46.     **  Cache the last request value here
  47.     */
  48.     void        *last;
  49.  
  50.     /*
  51.     **  List of all widgets that are using this palette
  52.     */
  53.     paletteUserList    *userList;
  54. } Palette;
  55.  
  56. Palette *PaletteCreate(Widget);
  57. Pixel     PaletteAlloc(Palette *, XColor *);
  58. int     PaletteAllocN(Palette *, XColor *, int, Pixel *);
  59. Palette *PaletteFindDpy(Display *, Colormap);
  60. Palette *PaletteFind(Widget, Colormap);
  61. XColor    *PaletteLookup(Palette *, Pixel);
  62. void     PaletteAddUser(Palette *, Widget);
  63. void      PaletteSetInvalid(Palette *, Pixel);
  64. void     PaletteDelete(Palette *);
  65. Boolean     PaletteLookupColor(Palette *, XColor *, Pixel *);
  66. Boolean  PaletteSetPixel(Palette *, Pixel, XColor *);
  67. Palette    *PaletteGetDefault(Widget);
  68. Pixel     PaletteGetUnused(Palette *);
  69.  
  70. /*
  71. **  Convience
  72. */
  73. void     PixmapInvert(Widget, Colormap, Pixmap);
  74.  
  75. #endif /* __palette_h__ */
  76.